package com.moli.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.moli.domain.ResponseResult;
import com.moli.domain.dto.AddArticleDto;
import com.moli.domain.dto.ArticleDto;
import com.moli.domain.entity.Article;
import com.moli.domain.vo.ArticleVo;
import com.moli.domain.vo.PageVo;

/**
 * @Author： CastleEason
 * @Date： 2023-06-07 22:28
 * @Description： 文章业务层
 */
public interface ArticleService extends IService<Article> {
	/**
	 * 热门文章列表查询
	 * @return
	 */
	ResponseResult hotArticleList();

	/**
	 * 分页查询文章列表实现
	 * 调用mybatis-plus内置分页接口功能实现
	 * @param pageNum
	 * @param pageSize
	 * @param categoryId
	 * @return
	 */
	ResponseResult articleList(Integer pageNum, Integer pageSize, Long categoryId);

	/**
	 * 获得文章的详细内容
	 * @param id
	 * @return
	 */
	ResponseResult getArticleDetail(Long id);

	/**
	 * 更新文章数量
	 * @param id
	 * @return
	 */
	ResponseResult updateViewCount(Long id);

	/**
	 * 新增文章
	 * @param article
	 * @return
	 */
	ResponseResult add(AddArticleDto article);

	/**
	 * 查询文章 分页
	 * @param article
	 * @param pageNum
	 * @param pageSize
	 * @return
	 */
	PageVo selectArticlePage(Article article, Integer pageNum, Integer pageSize);

	/**
	 * 获取文章信息
	 * @param id
	 * @return
	 */
	ArticleVo getInfo(Long id);

	/**
	 * 编辑文章
	 * @param article
	 */
	void edit(ArticleDto article);
}
